package com.ruoyi.order.mapper;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.order.domain.Product;
import com.ruoyi.order.domain.Vo.ProductVo;
import com.ruoyi.order.domain.app.Vo.Banner;
import com.ruoyi.order.domain.app.Vo.ProductViewDetail;
import com.ruoyi.order.domain.app.Vo.ProdInfoResultVo;
import com.ruoyi.order.domain.app.Vo.SkuVo;

/**
 * 产品表Mapper接口
 * 
 * @author ruoyi
 * @date 2022-02-04
 */
public interface ProductMapper
{
    /**
     * 查询产品表
     * 
     * @param productID 产品表主键
     * @return 产品表
     */
    Product selectProductByProductID(Integer productID);

    /**
     * 查询产品表列表
     * 
     * @param product 产品表
     * @return 产品表集合
     */
    List<Product> selectProductList(Product product);

    /**
     * 新增产品表
     * 
     * @param product 产品表
     * @return 结果
     */
    int insertProduct(Product product);

    /**
     * 修改产品表
     * 
     * @param product 产品表
     * @return 结果
     */
    int updateProduct(Product product);

    /**
     * 删除产品表
     * 
     * @param productID 产品表主键
     * @return 结果
     */
    int deleteProductByProductID(Integer productID);

    /**
     * 批量删除产品表
     * 
     * @param productIDs 需要删除的数据主键集合
     * @return 结果
     */
    int deleteProductByProductIDs(String[] productIDs);

    List<ProductVo> getProductPages(Map<String, Object> map);

    List<ProductVo> getProductPagesList(Map<String, Object> map);

    List<Banner> getProductImgs(Map<String, Object> map);

    List<ProductViewDetail> getsearchProdPage(Map<String, Object> map);

    List<SkuVo> getSku(Map<String, Object> map);

    ProdInfoResultVo getProdInfo(Map<String, Object> map);

    List<ProductViewDetail> getSearchProdPageByprodName(Map<String, Object> map);

    Product selectOne(Map<String, Object> map);

    List<Product> selectList(Map<String, Object> map);
}
